1. The Field of the Invention
The present invention relates generally to user interface software run on computers, and specifically to a method and apparatus for expanding the size of a window panel without contracting the size of any adjacent panels and without affecting the content format of any adjacent panels.
2. The Relevant Art
With the advent of the graphical user interface (GUI) on computer systems came the increasingly common use of the window to display information to the user. The data displayed in a window may be of different types. Some may be graphical, such as icons or symbols, or textual, such as a word processing document, or a combination of both. To keep different types of data displayed in a window separate and easily identifiable, a single window can be sectioned where each section contains a particular type of data. These sections are typically referred to as window panels. Thus, a single window may have several window panels. Again, window panels within a single window are useful, for example, if the window contains data that differ in nature (e.g. user menus vs. a database file) or in category (e.g. product information vs. customer information). These are only two examples of why data in a window may be separated or grouped; there may be many other reasons for separating data in a window. Window panels are a useful and convenient tool for sectioning or partitioning a single window and, as such, has become a basic concept in GUI technology.
Window panels have been employed in many capacities and come in many shapes and sizes. In addition to the examples above, window panels are used to contain icons corresponding to functions and utilities, to convey warnings or error messages to a user, to display the status of running applications, to provide menus and directories for a user, or to hold one or more primary work files such as a word processing document, a spreadsheet, or a database.
One type of window panel is a window pane. Where a window panel is used generically to describe a section of a window, a window pane is a type of window panel that contains transitional or non-permanent content. The content in a window pane can change often depending on the user's actions. While window panel can be used to refer to a window pane, a panel also includes sections of a window that contain more permanent data, such as icons and display windows in a tool panel. Another example is a simple horizontal menu bar. This type of data cannot typically be changed or altered by a user and are, in a manner, restricted areas. Normally, the largest sections in a window are window panes but they are also commonly referred to as window panels.
With the increasing use of window panels to separate data in a window and given the limited screen size of display monitors, individual window panels although capable of containing a large amount of data may only be capable of showing the user at any given time a small portion of that data. In other words, the window panel size may be small compared to the amount of data in that window panel.
Some systems presently existing allow a user to "manually" change the size of window panels through the use of push buttons typically located at the comers of the window panel or through the use of scrollbars. By using a pointing device and "pressing" a push button, a user can shrink, expand or move window panels to a desired size or position. The desired size may not always be known and consequently the operation of shrinking or expanding the window panel may have to be performed a number of times before reaching the optimal size. A scrollbar can be used to basically flip through and stop at desired portions of the content in a window panel. If a window is sectioned into many window panels and several of the panels contain data the user needs to do his or her work, the operation of manually changing the size, moving, or scrolling through a window panel can be tedious; akin to shuffling through a stack of paper to find the right document, a time-consuming side activity that interferes with the user's real work.
Some systems will expand and contract a particular window panel automatically when the system determines that the user wants to access that panel. However, in the expansion and contraction process, other window panels are also expanded or contracted, and the contents within those window panels are consequently reformatted and redrawn to fit within the altered window panel. For example, the default size of a window panel may occupy 10% of a total window size and the panel expands to reveal all its content thereby occupying 50% of the window. If there was only one other window panel in that window and the second panel originally occupied 90% of the window and it contained text, after the expansion the second panel would occupy only half the window and the size of the text in that panel would decrease by about 40%.
This decrease may make that text unreadable. Moreover, the decrease in window panel size and the accompanying reformatting and redrawing of all the content in all other affected window panels is a waste of valuable processing resources. Such operations take up time on the computer system's CPU and cause many unnecessary diversions to the system's memory, as well as to other resources, thus slowing down the overall operation of the system. Finally, this type of ripple effect on other window panels from changing the size of one window panel raises visual distraction or "noise" for the user. That is, the disappearance and reappearance of all the content as its being formatted and drawn in the resized window panel.
What is needed is a method and apparatus for adjusting the size of a window panel in which expanding, and similarly contracting, a window panel, for example to uncover hidden content, will not cause other panels to contract, or expand, and is time-efficient, visually appealing, and non-distracting to a computer user.